﻿using System;

namespace Progream19
{
    public delegate int DelegateCompare<T>(T t1, T t2);
    class Program
    {
        static void Main(string[] args)
        {

            //1.用方法来实现：有一个字符串数组：{ "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" },请输出最长的字符串。
            string[] str = { "马龙", "迈克尔乔丹", "雷吉米勒", "蒂姆邓肯", "科比布莱恩特" };
            string max = Maxlog(str);
            Console.WriteLine("最长字符串：{0}",max);
            //2.用方法来实现：请计算出一个整型数组的平均值。{ 1, 3, 5, 7, 93, 33, 4, 4, 6, 8, 10 }。要求：计算结果如果有小数，则显示小数点后两位（四舍五入）。
            int[] ave = { 1, 3, 5, 7, 93, 33, 4, 4, 6, 8, 10 };
            double gve = Gve(ave);
            Console.WriteLine("平均值：{0}",gve);
            //3.请通过冒泡排序法对整数数组{ 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 } 实现升序排序。
            int[] nume = { 1, 3, 5, 7, 90, 2, 4, 6, 8, 10 };
            //交换用的盒子
            int tmp = 0;
            //遍历每一轮(10个数要换9轮)
            for (var i = 0; i < nume.Length - 1; i++)
            {
                //内部比较的趟数
                for (var j = 0; j < nume.Length - i - 1; j++)
                {
                    //判断前一位数是否比后一位大如果比就交换
                    if (nume[j] > nume[j + 1])
                    {
                        tmp = nume[j];
                        nume[j] = nume[j + 1];
                        nume[j + 1] = tmp;
                    }
                }
            }
            //重新遍历升序排列后的数组
            Console.Write("冒泡排序");
            for (int i = 0; i < nume.Length; i++)
            {
                Console.Write(",{0}", nume[i]);
            }
            Console.Read();
        }
        #region"第一题"
        public static string Maxlog(string[] str)
        {
            string log= str[0];
            for(var i=1;i<str.Length;i++)
            {
                if(str[i].Length>log.Length)
                {
                    log = str[i];
                }
            }
            return log;

        }
        #endregion
        #region"第二题"
        public static double Gve(int[] str)
        {
            int sum = 0;
            for(var i=0;i<str.Length;i++)
            {
                sum += str[i];
            }
            //平均值
            //return ((double)sum) / str.Length;
            //四舍五入
            return Math.Round(sum * 1.0 / str.Length, 2);
        }
        #endregion
    }
}
